package com.sxbbc.common.core.entity.jz;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.sxbbc.common.basics.enums.LoginChannelEnums;
import com.sxbbc.common.core.enums.OrderTypeEnums;
import com.sxbbc.common.core.enums.PayChannlEnums;
import lombok.Data;

/**
 * <p>
 * 订单主表信息
 * </p>
 *
 * @author xiaoky
 * @since 2019-05-09
 */
@TableName("order_main")
@Data
public class OrderMain extends Model<OrderMain> {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 用户id
     */
    private Integer cid;

    /**
     * 商家id 可以为空没有表示是平台的商品
     */
    private Integer bid;

    /**
     * 订单号
     */
    private String orderCode;

    /**
     * 支付单号
     */
    private String payCode;

    /**
     * 第三方交易单号
     */
    private String transCode;

    /**
     * 货物总数量
     */
    private Integer totalNum;

    /**
     * 货物总额=货物单价*数量总额
     */
    private BigDecimal goodsMoney;

    /**
     * 实际金额=货物金额-各类折扣-积分抵扣
     */
    private BigDecimal realMoney;

    /**
     * 运费
     */
    private BigDecimal expMoney;



    /**
     * 支付金额=实际金额+运费
     */
    private BigDecimal payMoney;

    /**
     * 折扣金额=会员等级折扣-商品折扣
     */
    private BigDecimal discountMoney;

    /**
     * 优惠券金额
     */
    private BigDecimal couponMoney;

    /**
     * 其他优惠金额
     */
    private BigDecimal otherMoney;

    /**
     * 积分数量
     */
    private BigDecimal point;

    /**
     * 使用积分类型 1普通积分 件枚举类PointTypeEnums
     */
    private Integer pointType;

    /**
     * 订单类型见枚举类 {@link OrderTypeEnums}
     */
    private Integer orderType;

    /**
     * 订单状态 0已退款 1 已取消 5提交订单，待支付
     * 10已支付，待发货，15已发货，待收货，20已收货，待评价，25交易结束
     */
    private Integer orderStatus;

    /**
     * 是否删除 1已删除 0未删除
     */
    private Integer del;

    /**
     * 支付方式 见枚举PaytypeEnums
     */
    private Integer payType;

    /**
     * 下单时间
     */
    private Date createTime;

    /**
     * 确认去支付时间
     */
    private Date confirmTime;

    /**
     * 支付截止时间
     */
    private Date payendTime;

    /**
     * 支付完成时间
     */
    private Date payTime;
    
    /**
     * 订单取消时间
     */
    private Date cancelTime;
    /**
     * 订单备注
     */
    private String remark;
    
    /**
     * 是否结算  0未结算 1已结算
     */
    private Integer statem;
    
    /**
     * 支付来源渠道 {@link PayChannlEnums}
     */
    private Integer payChannel;

    /**
     * 订单来源渠道 {@link LoginChannelEnums}
     */
    private Integer fromChannel;

    /**
     * 提醒发货状态   0  未提醒  1 提醒发货
     */
    private Integer remindSend;
    
    /**
     * 发货时间
     */
    private Date sendTime;

    /**
     * 收货时间
     */
    private Date receivedTime;

    /**
     * 评价时间
     */
    private Date evaluateTime;

    /**
     * 交易完成时间
     */
    private Date overTime;

    /**
     * 订单标签 类似 团购,秒杀,折扣,优惠券 逗号拼接 见枚举类OrderLabelEnums
     */
    private String label;
    
    /**
     * 订单优惠说明例如，优惠券抵扣50元，会员折扣30元，满50减10.
     */
    private String proExplain;

    /**
     * 商家的类型 1自营2入驻 回调时需要
     */
    private Integer bType;

    /**
     * 核销码
     */
    private  String verifyCode;

    /**
     * 提鸡券id
     */
    private  Integer couponId;

    @TableField(exist = false)
    private String start;

    @TableField(exist = false)
    private String end;
    
    /**
   	 * 订单状态
   	 */
	@TableField(exist = false)
   	private String orderStatusName;

    @TableField(exist = false)
    private String bNickNameOnOff;
   	/**
   	 * 支付类型名称
   	 */
	@TableField(exist = false)
   	private String payTypeName;

    /**
     * 收货人
     */
    @TableField(exist = false)
    private String receiver;


    /**
     * 收货人电话
     */
    @TableField(exist = false)
    private String receiverPhone;
	/**
	 * 订单类型名称
	 */
	@TableField(exist = false)
   	private String orderTypeName;
	
	/**
	 * 支付方式名称
	 */
	@TableField(exist = false)
   	private String payWayName;
	
	/**
	 * 订单收货地址
	 */
	@TableField(exist = false)
   	private String addressDetail;
	
	/**
	 * 订单来源店铺名称
	 */
	@TableField(exist = false)
   	private String bName;

	/**
	 * 订单来源渠道
	 */
	@TableField(exist = false)
   	private String orderFromChannel;

	/**
	 * 订单详情集合
	 */
	@TableField(exist = false)
	private List<OrderDetail> details;
	
	/**
	 * 会员账号
	 */
	@TableField(exist = false)
	private String phone;
	/**
	 * 会员昵称
	 */
	@TableField(exist = false)
	private String CNickName;
	/**
	 * 店铺名称
	 */
	@TableField(exist = false)
	private String BNickName;

	/**
	 * 物流信息
	 */
	@TableField(exist = false)
	private List<OrderExpDetail> expList;

	@TableField(exist = false)
	private OrderExpDetail expDetail;

	@TableField(exist = false)
	private Integer wid;

    /**
     * 是否专门查询物流提鸡订单
     */
    @TableField(exist = false)
    private Integer logistics;


    /**
     * 发货单表ID
     */
    @TableField(exist = false)
    private Integer expDetailId;


    /**
     * 仓库名称
     */
	@TableField(exist = false)
	private String warehouseName;
	
	/**
	 * 是否查询全部退款的订单  0 不查询  其他状态都查询
	 */
	@TableField(exist = false)
	private Integer queryRefund;
    /**
     * 发货单发货状态
     */
	@TableField(exist = false)
	private Integer expStatus;

    @TableField(exist = false)
    private String queryTime;

}
